Simulating Noise

Background

The Lindblad master equation

Open quantum systems in the limit of ultraweak coupling to a Markovian bath can be modelled using the Lindblad master equation:

\[\frac{\partial \rho}{\partial t} = i[\rho, \mathcal H_{eff}] + \sum_{k}\gamma_k L_k\rho L_k^\dagger\]

where $\mathcal H_{eff}$ is the effective Hamiltonian, $L_k$ are the quantum jump operators, and $\gamma_k$ are the jump rates. The jump operators describe the coupling to the bath, and they are without loss of generality taken to be traceless. The effective Hamiltonian is non-Hermitian and is related to the closed-system Hamiltonian $\mathcal H$ via $\mathcal H_{eff} = \mathcal H-\frac{i}{2}\sum_{k}\gamma_k L_k^\dagger L_k$.

Stochastic wavefunction method

The infinitesimal form of this channel can be put into Kraus map form as

\[\rho(t+dt) = (1-i dt \mathcal H_{eff})\rho(t) (1+i dt \mathcal H_{eff}) + dt\sum_{k}\gamma_k L_k \rho(t) L_k^\dagger\]

This corresponds to a quantum jump $L_k$ with probability $dp_k = dt\gamma_k\operatorname{Tr}(L_k \rho L_k^\dagger)$. If $\rho = |\psi\rangle\langle \psi|$is a (normalized) pure state, then $dp_k = dt \gamma_k \Vert L_k|\psi\rangle\Vert^2$, the norm of the state after undergoing the quantum jump. With probability $1-dp$ where $dp = \sum_k dp_k$ is the total probability of experencing a quantum jump, the system evolves to $(1-i dt \mathcal H_{eff})\rho (1+i dt \mathcal H_{eff}) \approx \rho + i dt[\rho, \mathcal H_{eff}]$. This corresponds to the normal Liouville-Von Neumann equation with the non-Hermitian effective Hamiltonian $\mathcal H_{eff}$. The physical interpretation of this is that an absence of a quantum jump also has an affect on the system evolution.

These dynamics can be modeled stochastically by chopping the evolution into small intervals $dt$. At each time step, the state $|\psi\rangle$ evolves to $\frac{1}{\mathcal N}(1-idt\mathcal H_{eff})|\psi \rangle$ with probability $1-dp$ and evolves to $\frac{1}{\mathcal N}L_k |\psi \rangle$ with probability $dp_k$, where $\frac{1}{\mathcal N}$ is the appropriate normalization. Performing this stochastic evolution results in a single trajectory consisting of a number of random quantum jumps at random times. Averaging over $j \in \{1,...,m\}$ trajectories results in an ensemble of state $|\psi_j(t)\rangle$, and averaging $|\psi_j\rangle\langle\psi_j|$ over these trajectories converges to the density matrix $\rho$ produced by the master equation in the limit as $m\to \infty$.

Stochastic wavefunction algorithm

In practice, directly simulating the stochastic process described above is computationally inefficient. Noticing that

\[\Vert(1-idt\mathcal H_{eff})|\psi \rangle\Vert^2 = 1 - dt\sum_k \gamma_k\langle \psi| L_k^\dagger L_k |\psi\rangle = 1 - dp \ ,\]

the change in the wavefunction norm over an interval of coherent evolution is related to the accumulation of probability $p$ of experiencing a quantum jump. The result is the following algorithm:

  1. Choose a random number $r$
  2. Evolve according to $\frac{\partial}{\partial t}|\psi\rangle = -i\mathcal H_{eff}|\psi\rangle$ without normalizing the state
  3. When $\Vert |\psi\rangle \Vert^2 = r$, trigger a quantum jump $k$ according to the distribution $p_k \equiv dp_k/\sum_k dp_k$ and normalize

Further reading

For a more in-depth description of the algorithm, please refer to refs. [1,2].

using BloqadeNoisy

using Bloqade
using Yao
using CSV
using DataFrames
using JSON
using LinearAlgebra
using Bloqade.CairoMakie
using StatsBase
using Printf
using ProgressBars

Noisy Single-Qubit Rabi Oscillations

Solution to the master equation

First, we observe the effect that incoherent depolarizing noise has on the Rabi oscillations of a single qubit. A depolarizing channel is modelled by collapse operators $X, Y,$ and $Z$ which occur with the a uniform rate $\gamma$, as expressed in the following master equation

\[\rho(t+dt) = (1-idt\mathcal H)\rho(t)(1+idt H) + dt\gamma (X \rho(t) X + Y \rho(t) Y + Z \rho(t) Z-3\rho(t))\]

Using the identity $2I = \rho + X\rho X + Y\rho Y + Z \rho Z$ for arbitrary $\rho$, we can write

\[\rho(t+dt) = (1-idt\mathcal H') \rho(t) (1+idt \mathcal H') + 4\gamma dt\frac{I}{2}\]

where $\mathcal H' = \mathcal H - 4i\gamma$. This corresponds to $\rho$ undergoing coherent evolution according to $\mathcal H'$ with probability $1-4\gamma dt$ and being replaced with the completely mixed state with probability $4\gamma dt$. Since all trace-preserving quantum channels stabilize the maximally mixed state, the evolution can be modeled as a continuous-time Markov chain transitioning between coherent evolution $|\psi(t)\rangle$ and the mixed state $\frac{I}{2}$ with probability $4\gamma dt p_I(t)$, where $p_I(t)$ is the probability that the system is already in the mixed state. Integrating this probability over time gives $p_I(t) = 1-e^{-4\gamma t}$. Therefore we can write down the solution

\[\rho(t) = e^{-4\gamma t}|\psi(t)\rangle\langle\psi(t)| + (1-e^{-4\gamma t})\frac{I}{2}\]

math Where $|\psi\rangle$ is evolved via the Schrodinger equation and normalized. Solving the Schrodinger equation for a time-independent $\mathcal H'$ gives $|\psi(t)\rangle = e^{-i\mathcal Ht}e^{-4\gamma t}|\psi\rangle$. Normalizing this state gets rid of the exponential decay factor, leaving $|\psi(t)\rangle\rangle = e^{-i\mathcal Ht}|\psi\rangle$, corresponding to coherent evolution by the original Hamiltonian $\mathcal H$.

Consider the Hamiltonian $\mathcal H = \frac{\Omega}{2}X$ and an initial state $|\psi\rangle = |0\rangle$. The time-evolution operator is $e^{-iXt\Omega/2} = \cos(\frac{\Omega}{2}t) -i\sin(\frac{\Omega}{2}t)X$, and so the state evovles in time to $|\psi(t)\rangle = \cos(\frac{\Omega}{2}t)|0\rangle - i\sin(\frac{\Omega}{2}t)|1\rangle$. The expectation value of the number operator $\hat n$ is then $\langle \hat n(t) \rangle_\psi = \sin^2(\frac{\Omega}{2}t)$. Plugging this into the master equation solution, in a noisy channel the evolution is

\[\langle \hat n(t) \rangle = e^{-4\gamma t}\langle \hat n(t) \rangle_\psi + (1-e^{-4\gamma t})\frac{1}{2}\operatorname{Tr}(\hat n) = \frac{1}{2} - \frac{1}{2}e^{-4\gamma t}\cos(\Omega t)\]

Like an underdamped harmonic oscillator, the value oscillates around an equilibrium value of $1/2$ with an envelope that decays exponentially in time.

Simulation in Bloqade

In BloqadeNoisy, the NoisySchrodingerProblem plays the same role as the SchrodingerProblem in Bloqade, and emulate_noisy plays the same role as emulate!. The NoisySchrodingerProblem is constructed using the following arguments:

  1. initial state
  2. list of times to save the solution
  3. noiseless Hamiltonian
  4. list of collapse operators. The rate is absorbed into the operators, so $L_k$ becomes $\sqrt{\gamma_k}L_k$.

emulate is called with the problem and the number of trajectories. Additional arguments can be a list of operators to take expectation values. Calling emulate with report_error = true will return a set of estimates of error by computing the standard deviation of the expectation values over the trajectories. Lastly, choices for the ensemble_algo argument are EnsembleSerial(), EnsembleThreads(), or EnsembleDistributed() for different levels of parallelization.

Ω = 2π
γ = 0.1

collapse_operator = sqrt(γ) .* mat.([X, Y, Z])
e_observable = [mat(Op.n)] #expectation values

h = rydberg_h([(0.0,)]; Ω = Ω)
save_times = LinRange(0, 10, 200)

prob = NoisySchrodingerProblem(
    zero_state(1),
    save_times,
    h,
    collapse_operator
)

sol = emulate_noisy(
    prob, 2000, e_observable;
    ensemble_algo = EnsembleThreads(),
    report_error = true
)

fig = Figure()
ax = Axis(fig[1, 1]; xlabel = "Rabi periods", ylabel = L"\langle \hat{n} \rangle", title="Noisy Rabi Oscillation")
ylims!(ax, 0, 1)
x_plot = lines!(ax,
    save_times,
    sol.expectations[1],
    label = "simulated",
    color=:black
)
band!(ax, save_times, sol.expectations[1] .- sol.twosigma[1], sol.expectations[1] .+ sol.twosigma[1], alpha=0.2, color=:cyan)
plot!(ax,
    save_times,
    1/2 .- 1/2*exp.(-4γ * save_times) .* cos.(Ω * save_times),
    label = "analytic",
    color=:blue
)
axislegend(ax, position = :rt)
fig

BloqadeNoisy

Coherent noise in neutral atom simulators

One of the advantages of neutral atoms is that they couple weakly to their environment. This means that incoherent noise is supressed. A more dominant source of noise is due to imperfect control, which causes fluctuation the Rabi power $\Omega$, detuning $\Delta$, and atoms positions $\vec r_{ij}$ between shots. This is referred to as "coherent" noise because it preserves the coherence over a single shot, but averaging over many shots still produces a mixed state. This noise afffects the system globally and is distinct from noise due to coupling to a bath.

To model this affect, we consider $\Omega$ distributed according to $G(\Omega) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-(\Omega - \bar \Omega)^2/2\sigma^2}$. Let the Hamiltonian again be $\mathcal H = \frac{\Omega}{2}X$. The noiseless evolution of $\langle Z \rangle$ is then $\langle Z(t) \rangle = \cos(\Omega t)$. We then average $\langle Z \rangle$ over the distribution in $\Omega$:

\[\overline{\langle Z \rangle} = \frac{1}{\sqrt{2\pi\sigma^2}}\int_{-\infty}^{\infty}\cos(\Omega t)e^{-(\Omega-\bar\Omega)^2/2\sigma^2} d\Omega = \cos(\bar \Omega t)e^{-2\sigma^2t^2/4}\]

Thus we see where incoherent noise results in an exponential envelope, coherent noise results in a Gaussian envelope. This result holds generally. Combining this with the result from pure depolarizing noise, we obtain an envelope in the form of an exponentially modified Gaussian:

\[\langle Z(t)\rangle = \cos(\bar \Omega t)e^{-\sigma^2t^2/2 - 4\gamma t}\]

Implementation in BloqadeNoisy

The stochastic wavefunction method allows for this experimental setting to be modelled by varying the parameters in the Hamiltonian between trajectories. In BloqadeNoisy, this is represented as a method which takes a Hamiltonian and returns another method that can be called to generate random samples. The levels of coherent, incoherent, and readout noise are contained in an ErrorModel object, which is constructed using

  1. A method that takes a number of atoms and returns a confusion matrix
  2. A method that takes a number of atoms and returns a set of collapse operators
  3. A method that accepts a Hamiltonian and returns a method to generate random samples
γ = .01
σ = .1 * 2π
Ω = 2π
h = rydberg_h([(0.0,)]; Ω = Ω)
times = LinRange(0,5,400)

em = ErrorModel(
    n->I,
    n->[sqrt(γ) * mat(op) for op in [X, Y, Z]],
    h->(()->rydberg_h(
        [(0.0,)];
        Ω = Ω + σ*randn())
    )
)

prob = NoisySchrodingerProblem(zero_state(1), times, h, em)
sim = emulate_noisy(prob, 2000, [mat(Z)]; report_error = true);

fig = Figure()
ax = Axis(fig[1, 1]; xlabel = "Rabi periods", ylabel = L"\langle Z \rangle", title="Coherent noise")
lines!(ax,
    times, sim.expectations[1],
    label = "simulated",
    color=:black
)
band!(ax, times, sim.expectations[1] .- sim.twosigma[1], sim.expectations[1] .+ sim.twosigma[1], alpha=0.2, color=:cyan)
scatter!(ax,
    times,
    (t->cos(Ω*t)*exp.(-σ^2*t^2/2 - 4γ*t)).(times),
    label = "analytic"
)
axislegend(ax, position = :rt)
fig

BloqadeNoisy

Noise on Aquila

Aquila's noise model was calibrated using experimental data, and the parameters that are modelled are the following:

ParameterDesc.Default value
$\delta \Omega/\langle \Omega \rangle$Relative global Rabi drive fluctation0.018 (dim.)
$\delta \Omega_i / \langle \Omega \rangle$Relative local Rabi drive fluctation0.008 (dim.)
$\delta \Delta$Global detuning fluctuation$0.18 \ (rad / \mu s)$
$\delta \Delta_i$Global detuning fluctuation$0.50 \ (rad / \mu s)$
$\delta r_x, \delta r_y$Lattice site position uncertainty$0.05 \ \mu m$
$\tau_{relaxation}$Relaxation time$100 \ \mu s$
$\tau_{dephasing}$Dephasing time$50 \ \mu s$

In addition, the affect of readout noise can also be modelled using BloqadeNoisy. Readout error in neutral atom simulators is highly local, so it can be modeled as a problility $p_{0 \to 1}$ and $p_{1 \to 0}$ of confusing $|0\rangle$ and $|1 \rangle$ and vice-versa.

ParameterDesc.Default value
$p_{0 \to 1}$Probability of confusing 0 with 10.01
$p_{1 \to 0}$Probability of confusing 1 with 00.08

The effect of readout error can be modelled by a confusion matrix of the form $C = \begin{pmatrix} 1-p_{01} & p_{10} \\ p_{01} & 1-p_{10} \end{pmatrix}^{\otimes N}$. This transforms the output probability distribution from $p(z)$ to $\tilde p(z) = \sum_{x} C_{zx}p(x)$, which affects the sampled bitstrings and expectation values of operators estimated from the machine.

Using Aquila noise model

BloqadeNoisy makes Aquila's noise model available to use. It is constructed by calling Aquila() and is passed as the fourth argument to emulate_noisy.

Experimental validation

The experimental data used to calibrate the noise model is taken from the Aquila whitepaper [3]. Readout error can be added to expectation values in the computational basis by passing readout = true to emulate. The operators must be of type Diagonal. Below, we show the estimation of a noisy expectation value incorporating the effect of readout error and compare to the experimental whitepaper data.

whitepaper_data = CSV.read(pkgdir(Bloqade, "lib", "BloqadeNoisy", "examples", "whitepaper_comparison", "data", "15MHz_long.csv"), DataFrame; delim = ",", header = false)
times = collect(whitepaper_data[1,:])
data = collect(whitepaper_data[2,:])
save_times = LinRange(0, last(times), 400)

Ω = 15.3
Δ = 0
H = rydberg_h([(0.0,)]; Ω = Ω, Δ = Δ)

prob = NoisySchrodingerProblem(zero_state(1), save_times, H, Aquila())
sim = emulate_noisy(prob, 1000, [mat(Op.n)]; readout_error = true);

fig = Figure()
ax = Axis(fig[1, 1]; xlabel = "Rabi periods", ylabel = L"\langle \hat{n} \rangle", title="Simulation vs Data")
scatterlines!(ax, times, data, marker = :diamond,
    markersize = 4, color = :green, linestyle = :dash,
    label = "Data"
)
plot!(ax, save_times, sim[1], color = :blue, label = "Sim")
axislegend(ax, position = :rt)
fig

BloqadeNoisy

The Aquila() method is shorthand for load_error_model(JSON.parse(AQUILA)). The AQUILA string is a JSON dictionary containing the preconfigured noise model, and this syntax allows the noise model to be modified.

default_error_model = JSON.parse(AQUILA)
dephasing_rate = 1/10
default_error_model["incoherent"]["dephasing rate"] = dephasing_rate

#create error model based on Aquila
new_error_model = load_error_model(default_error_model);

Simulated scar experiment

Many-body scars are product states that have a large overlap with a tower of eigenstates exhibiting atypical properties such as low entanglement. Ref [4] studies the scarring properties of the PXP model, given by the Hamiltonian

\[\mathcal H_{\text{PXP}} = \sum_{i}P_iXP_i + \mu \sum_{i}\hat n_i\]

where $P_i = \bigotimes_{\langle j, i \rangle}|0_i\rangle\langle 0_i|$, with $\langle j, i\rangle$ running over the nearest neighbors of $i$, and $\mu$ is the chemical potential. Scarring is observed when states fail to thermalize, i.e. exectation values exhibit long-lived dynamic revivals. The PXP model can be approximately realized in a Rydberg atom array by operating in the blockaded subspace and tuning $\Delta$ to cancel the mean-field contribution of the next-nearest-neighbor Van der Waals interactions.

BloqadeNoisy allows for estimation of expectation values at a fixed number of shots to emulate an experimental setting. We can use this to predict what a many-body scar experiment on Aquila would look like. Following [4], we first adiabatically prepare the ground state of the PXP model with a chemical potential $\mu_i = -0.76$ and then a quench to $\mu = 1.6$.

Ω = 2π
C = 862690 * 2π
Rb = (C/Ω)^(1/6)
N = 12

atoms = generate_sites(ChainLattice(), N, scale = .65*Rb)
Δ_NNN = 1/(2N) * sum(
    [
        (r=norm(atoms[i] .- atoms[j]);
        r > Rb ? C/r^6 : 0)
        for i in 1:N for j in 1:N
    ]
)

μ_i = -.76 * 2π
μ_f = 1.6 * 2π

t_prep = 2
t_quench = 2

Δ_ad = piecewise_linear(clocks = [0, t_prep], values = [-40*2π, Δ_NNN - μ_i])
Δ_quench = piecewise_constant(clocks = [0, t_quench], values = [Δ_NNN - μ_f])
Δ = append(Δ_ad, Δ_quench)

times = LinRange(t_prep, t_prep+t_quench, 200)
H = rydberg_h(atoms; Ω = Ω, Δ = Δ)
ψ = solve(
    SchrodingerProblem(zero_state(N), t_prep+t_quench, H;
        save_on = true, saveat = times, save_start = false
    ),
    DP8()
);

expt_times = LinRange(t_prep, t_prep+t_quench, 70)
prob = NoisySchrodingerProblem(zero_state(N), expt_times, H, Aquila())
@time sim = emulate_noisy(prob, 10, [mat(chain(igate(N)-put(N, i=>Op.n) for i in 1:N))];
    readout_error = true, report_error = true, shots = 1000,
    ensemble_algo = EnsembleThreads()
)

fig = Figure()
ax = Axis(fig[1, 1]; xlabel = L"t (\mu s)", ylabel = L"\langle (1-\hat{n})^{\otimes N}\rangle", title="Many-body scar simulation")
lines!(ax, times, [abs(p[1])^2 for p in ψ.u],
    label = "ideal",
    color = :blue
)
errorbars!(ax, expt_times, sim.expectations[1],
    sqrt.(sim.shot_error[1].^2 .+ sim.propagated_err[1].^2),
    color = :red
)
scatter!(ax, expt_times, sim.expectations[1],
    label = "noisy", color = :red,
)
fig

BloqadeNoisy

Manybody Fidelity

A Haar-random pure state $|\psi\rangle$ from a Hilbert space with dimension $D = 2^N$ produces probability amplitudes $p(z) = |\langle z |\psi\rangle|^2$ that are distributed exponentially according to the Porter-Thomas distribution $P_1(p) = De^{-Dp}$ in the limit of large $D$. Haar-random sates are produced by chaotic quantum evolution, which we can achieve by randomly spacing $N$ atoms and choosing $\Omega(t)$ to be strong relative to the coupling and vary sufficiently over the interval. Under the influence of noise, the evolution can be desribed by

\[\rho(t) = F|\psi(t)\rangle \langle \psi(t)| + (1-F(t))\chi\]

where $\chi$ is a density matrix with $r(z) = \langle z|\chi|z\rangle$ strongly peaked around $1/D$, approximately $P_2(r) = \delta(z-\frac{1}{D})$. The probability $q(z) = \langle z|\rho|z\rangle$ is thus distributed according to the convolution

\[P_3(q) = \int_0^{q}\frac{1}{1-F}\delta\left(\frac{z}{1-F}-\frac{1}{D}\right)\frac{1}{F}De^{-D(q-z)/F}dz = \begin{cases} 0 & q < (1-F)/D\\ \frac{D}{F}e^{(1-F)/F}e^{-Dq/F} & \text{otherwise} \end{cases}\]

This distribution is the one described in [5].

We consider single-atom depolarizing noise at a rate $\gamma$, and we take $F(t)$ to be the probability that no error has occurred after time $t$. Since there are $3N$ possible errors ocurring at a rate $\gamma$, we find $F(t) = 1-e^{-3N\gamma t}$.

Implementation in Bloqade

First, we set up a Hamiltonian and simulate noiseless evolution:

tend = 10
Ω = Waveform(t-> 2.5*2π*(sin(sqrt(10)*2π*t)+cos(sqrt(2)*2π*t)), tend)
R = (862690/2.5)^(1/6)

N = 10
D = 2^N
atoms = [(R*i+.05*randn(),) for i in 1:N]

h = rydberg_h(atoms; Ω = Ω)

ψ = solve(SchrodingerProblem(zero_state(N), tend, h), DP8()).u[end]
1024-element Vector{ComplexF64}:
   -0.012644324857351445 + 0.011429420059863908im
    0.022311144131673954 + 0.012238071867656094im
    0.006416633603011647 + 0.03233858966284763im
  -0.0021120000736905803 + 0.006581629372451504im
    0.015221580824046567 + 0.011588698669526748im
   -0.028742950578974972 - 0.013375830153257233im
    0.012414509958217286 - 0.007535584599368557im
     0.00662382805691624 + 0.030305678260758237im
   -0.019605664872750825 - 0.036635923736875374im
    0.023007448774025743 + 0.02067516781290061im
   0.0007221017887103773 + 0.0013081086409975986im
   -0.016535307421661233 - 0.007648051776956648im
   -0.018117121068198242 - 0.054304156732500844im
     0.02070929727568786 - 0.006370933570688897im
   -0.007161691659607301 + 0.025680764057476865im
   -0.008659045474816185 - 0.0008470171311480832im
     0.00828636004777011 - 0.02122991161979647im
  0.00014961702682079548 + 0.007764052296880843im
     0.02321128933052168 + 0.03900375831507632im
      -0.039341484488988 + 0.027785224941459664im
   0.0012300700956447293 - 0.014734703091242344im
   0.0005468591649801393 + 0.0012207539690127628im
   -0.012514164273619214 - 0.0019469652530006768im
  -0.0036300778204142905 + 0.009221344850641466im
    0.021389633932367615 - 0.013739048872957344im
     0.01858593211057968 - 0.005657723128125445im
    -0.00685084357320528 + 0.02253380315660815im
   -0.014440985890796183 + 0.019346627137279238im
    0.011318916012408937 + 0.04389882150271206im
     0.02553993622866017 + 0.022131035081817785im
   -0.015598643542909062 + 0.04162221744679122im
   -0.001992423595004269 + 0.000990845078886167im
   -0.024543059395736293 - 0.015915116877698726im
     0.03295418265174793 - 0.02103623216449336im
   -0.016902250211162494 + 0.02346674656648099im
     0.03286323627318324 + 0.05486566372755603im
   -0.013426882312513173 + 0.016500716702861892im
   -0.022275314081655704 - 0.014610183413158465im
    -0.03090724938359505 + 0.036840976368123106im
    -0.01935051510565771 + 0.018393935543956727im
     0.01358286590238974 - 0.00797202968173764im
   -0.004165037886531642 - 0.018578050796697033im
    0.031073578175712144 + 0.02794332600459906im
    -0.04021770830732427 + 0.02764059610917928im
    -0.01196251476867839 - 0.017028069675020234im
    0.011929677786680994 - 0.02293832855779139im
  -0.0064120880551078955 + 0.010557885607535022im
    0.014757919361145384 - 0.002553547563702187im
   -0.029405671806710876 - 0.007291235690397345im
     0.03235547375167475 + 0.03372994299116799im
     0.02533333255016996 - 0.00860129590739751im
  -0.0006284882481497605 - 0.008430163375378573im
    0.016010994904281227 + 0.014183888915551274im
    0.030799097946589218 - 0.020819572175719326im
    0.002098939478575417 - 0.014694670050685543im
   -0.029805564632412917 + 0.020177513146008557im
   -0.034002284253753165 + 0.022457778959011916im
    0.014799429722720615 + 0.012591228447655197im
     0.01668123504665685 - 0.002308018929014122im
   -0.014142557445168815 - 0.04439955320709494im
   -0.015645480673083596 - 0.02243256928693734im
    -0.05085908658203172 + 0.009744343132089007im
    -0.03349947194797895 + 0.0035616232879824286im
    -0.02456481880134208 - 0.01686591405615054im
   -0.045116990657711596 + 0.000787827801127592im
    0.004562328471084171 - 0.030005933615175645im
  -0.0033373530276128234 - 0.016393872358429054im
   -0.026201271702439716 - 0.02333831311704391im
    -0.04843448812869548 - 0.010336590020931374im
    0.010018141642625818 + 0.03405755832878922im
    0.006756523604321454 - 0.00929829485318291im
    0.029240841535029538 + 0.01926626945536252im
   -0.039531458970182835 + 0.03930935444145184im
   -0.024998693286141148 + 0.012604537072645274im
     0.01866814822283076 + 0.019425563542666103im
     -0.0171763311076844 - 0.013942934008541042im
    0.030703164596789567 - 0.0683327364554504im
   -0.016375363400234818 - 0.024778802008767226im
    0.014840962221644011 + 0.001038176999140903im
    -0.03110771671899156 - 0.006507855519117669im
    -0.03253300339582804 + 0.015225352288422072im
   0.0018235746194663642 + 0.02295271906782612im
    0.019291640762541862 + 0.019799433656265655im
    -0.03193957019374163 + 0.013540832645609662im
   -0.005407250628212777 + 0.011937026124930954im
   -0.006799814569754183 + 0.004311749722882822im
   -0.014844248068357909 - 0.0101219422601792im
   -0.009765113889777364 + 0.027531804935373088im
   -0.005110799871338075 - 0.023575847490013475im
    0.028366876057666406 - 0.020858194189906358im
     0.02561266632843461 + 0.00818789010384329im
     0.01634952691651532 - 0.02237149591411183im
    -0.01438165095271235 + 0.03965569292080232im
   -0.026822967334278344 + 0.02262477020069597im
    0.015242736562827533 - 0.022160220695409374im
    0.027816606411506496 + 0.04241899208157346im
    0.025046555504784733 - 0.003297579755502267im
    -0.00721328772372737 + 0.03210729170058719im
    -0.03237929663311333 + 0.012795285758082399im
    0.001085905562035911 + 0.03365967772778955im
   -0.008765860025146701 - 0.021452011456140577im
   -0.009147347493547826 + 0.01973489272939567im
    0.004981659432695654 - 0.018957940042468466im
    -0.02225124166269744 + 0.040567609293668795im
    -0.02165927008138436 + 0.016809920785211378im
   0.0023145368136644673 + 0.021074609379072396im
    0.028667113540355546 + 0.0227127968235681im
   -0.008577259735720906 - 0.00807333060262052im
    -0.00305269170279208 - 0.007272278780877687im
    0.014542015056870982 - 0.005501390917981799im
   -0.028298419649521844 + 0.04917459528899753im
    0.004757340380601117 + 0.021633921548368483im
    0.008925027649605701 + 0.008423694504947772im
    0.002020382645272231 - 0.02267088672509092im
    0.020220785555419667 - 0.037612275295718346im
    0.000667810199071763 + 0.04941840687555645im
    0.032472127704656704 - 0.008421024089059807im
   -0.011593964472697187 + 0.04152200412562936im
      0.0323441017553135 - 0.004965850593346175im
    -0.00826050181422603 - 0.026247261475136868im
     0.04363769366018993 + 0.01255707415273325im
 -0.00048785589299745884 + 0.017014345404890913im
  -0.0073721443751280005 + 0.020663586429271262im
   -0.017077872098840503 - 0.017308087880413013im
    0.026639846033735183 + 0.001125922818971621im
    0.018354420021064178 - 0.0222018139571844im
    -0.04329748990928511 + 0.008397321110777158im
   -0.009078599317132502 - 0.041446091789900136im
  -0.0006697974808802991 + 0.006308846228390729im
    -0.02764971273700676 + 0.003694601146700081im
   0.0024340055218573914 - 0.01257171017952152im
    0.028994422985192437 - 0.004233218477722821im
   -0.009993314473837675 + 0.08748968102027611im
    0.002996429051023305 - 0.019717128323607138im
    -0.04931886068591753 + 0.006165146345710598im
   -0.007125023219774974 - 0.023266812191754662im
   -0.021404683475265283 - 0.02807299798749817im
   -0.019214043993235373 - 0.029802531009981748im
   0.0009456964885326465 + 0.035461574391718285im
   -0.002269052791572448 + 0.004604583645134023im
    0.008273329345946972 + 0.010411091894894899im
   -0.003285347125549774 - 0.0021160104680498742im
     -0.0202935996896008 + 0.00599038729768664im
    0.008154303306261683 - 0.030548320505903694im
    0.018132140375146225 + 0.012599440607899505im
    0.025556149929026956 + 0.000520500001517408im
   -0.022469199634104178 - 0.004445254824269218im
    0.009834989210733072 - 0.01324880285068997im
     0.01903982209424639 - 0.01309661524170725im
   0.0012429742381485692 - 0.022431827629967413im
  -0.0060522925902650425 - 0.010663675288001563im
    0.019128154059126667 - 0.03318296053372267im
   -0.009033485289093592 - 0.03163674139493824im
    0.020055352805136473 - 0.009797914877451073im
    0.023955345782928406 + 0.006635961307632552im
   -0.008730869698029038 - 0.0007548821704162635im
  -0.0006617757253983577 + 0.007398833188369222im
   -0.014534184072707866 + 0.01163555105469717im
    0.033085759006093236 - 0.023638240578104493im
     0.06085116150234449 + 0.0013539006817614484im
   -0.006067852926510909 + 0.014295858768476014im
    -0.00274244155475554 - 0.028820124452648335im
   -0.020792180443840482 - 0.030915892216826113im
     0.03869736818731232 + 0.008876727804644081im
     0.04666719104275818 - 0.01975750189074363im
   -0.006423685926464607 - 0.017336035510356288im
    0.016664884155780817 + 0.002766847871986286im
    -0.03098835819474763 + 0.03720999101569395im
    0.019636212832900794 - 0.022933121385508553im
    -0.01697267100231952 + 0.017389849944176004im
   -0.010128752913401283 - 0.04404546803264559im
    -0.01538876741704583 + 0.031698613997589206im
   0.0053120532493491236 - 0.04370565928738686im
    0.044137840661016385 + 0.013182691435092852im
   -0.020314316403974558 + 0.005190190673371126im
   -0.020579931231508166 + 0.01801469915505891im
   0.0037042489366605927 + 0.018030847113754675im
     0.01862378830763405 - 0.042595452527123774im
    0.024964361684397782 - 0.023395041981407693im
   0.0005280931021746586 + 0.007743078940074226im
    0.027659812584253207 - 0.040241736694262085im
     0.04258821337857665 - 0.02679381860698737im
    0.011808080998072634 + 0.015462680477237999im
   -0.006957859408462034 - 0.011405184798125962im
   -0.006878548474974011 + 0.022400589688333538im
   -0.010265821434179244 + 0.008195738018036023im
   -0.012653165289046168 + 0.009808157226205183im
    -0.01458771106150339 - 0.009000754289104435im
    -0.04598097028733696 - 0.003447562486892256im
   -7.807110480744967e-5 + 0.03635818643983383im
   0.0045397870887086585 + 0.0729928473893998im
     0.03892366165575258 + 0.017297399096323354im
   -0.025753969713397922 - 0.006812158762624065im
   -0.006139728926577624 + 0.0038590080560728757im
    0.014468480898752491 + 0.005077116258210699im
    0.016114928620564378 + 0.0024231762681160983im
     0.04508714223804957 + 0.0010239261332238893im
     0.00185621770301745 - 0.004938752777923935im
   -0.019345353767397055 + 0.008951369128848776im
   -0.041520986799155106 - 0.0045399172465545815im
 -0.00044858966333567827 - 0.02697373303960744im
    -0.00593962276526528 + 0.01445322560244144im
    0.022262843631788907 - 0.013423952376995243im
   -0.008602068607455562 - 0.058074710653170936im
   -0.004416820991634567 + 0.046089711393378814im
   -0.040358741530178946 - 0.00843567140672078im
     -0.0159457575135348 - 0.04303362524104928im
     0.03845197232385001 - 0.03424405002932841im
   -0.012506330256705804 + 0.005135741405882816im
    0.008287941334411799 + 0.0003917533560867781im
    0.013383605625108501 + 0.008927730962186098im
     0.01397309113959702 - 0.03539709407023996im
    -0.01456564349023665 - 0.03803413042646577im
   -0.017510240306980247 + 0.03817106776045981im
   0.0026426089135019545 + 0.036990174855394145im
    0.027134861070005834 + 0.0035875391698806185im
   0.0047495331212675735 - 0.0007810228737047148im
   -0.011214470517138204 + 0.011688405063141278im
    0.014462616287386954 - 0.0048531473696204214im
   -0.030999615636381043 + 0.042667621152514455im
   -0.013343981845014766 + 0.00608427449494909im
    -0.03425011490673785 - 0.017643619637175253im
   0.0016512251488187296 + 0.021606683488245123im
  -0.0006753135107306415 - 0.017766120881988444im
   -0.008427241441590745 + 0.05529786798161365im
   -0.010037653977412627 + 0.03996586634250359im
   -0.028447947552275556 + 0.009641973732382063im
  -0.0010076605373431466 + 0.03289503106715404im
   -0.014426824332238745 + 0.030866578548342988im
    0.011176108157478647 - 0.00608079590224356im
     0.02023574710442512 - 0.0332742890857683im
    0.020686120935013978 + 0.016928744461189735im
  -0.0025414235829665515 + 0.0011564660524055797im
   0.0016645502726576695 - 0.00207920069275202im
   -0.020877177625938027 - 0.061649950081800894im
   -0.005273643300614287 + 0.02182941691080847im
   -0.013291114270796892 - 0.005042278162983046im
    0.007562918639526216 + 0.01197628719236651im
   -0.009895163184666579 - 0.0032281872571513935im
   -0.002558606992781688 - 0.0035365394221775455im
   -0.009885563256604281 + 0.015273258895545132im
     0.01223067706615309 + 0.008276927690176662im
   -0.037006606484198415 - 0.0231579193827274im
    -0.02113436629872636 + 0.0003701087463378222im
    -0.04887464632585894 - 0.02493994231176166im
     0.00183147560686602 - 0.02635235032028739im
   -0.012879100794543632 - 0.04988808093290147im
   0.0031672834217596484 - 0.043718880056827565im
   -0.013085945968781812 - 0.03255586037903604im
    0.026874893322566477 + 0.012662041669329115im
    0.031015961551509933 - 0.023105964108394286im
    0.015631670053090956 - 0.02399675477232187im
    -0.08366241392359583 - 0.03780498593710259im
   -0.018751020293947582 + 0.012575624172088967im
    0.016603176128721323 - 0.0011460489373237423im
     0.02988133617183607 + 0.03834437043139615im
   -0.014816156830834749 + 0.017986989426903875im
    0.010051298603991479 - 0.008857457626305897im
   -0.007001407502331423 + 0.009901171352825557im
     0.02407026753658137 + 0.025050995026998715im
   -0.035290648353718826 - 0.028274082882066977im
  -0.0012788323457238588 - 0.0054898082329301445im
   -0.004327760687902354 + 0.03863903875135065im
    0.015040853190571865 - 0.012480154970332452im
   -0.019611248060961286 + 0.000883585250705761im
     0.03613653872681819 + 0.009638622758052186im
   -0.025447772616275947 + 0.020865105844427467im
    0.034322251322955154 - 0.03736685012657339im
     0.02698557930982437 + 0.0017596118750434762im
    -0.00997089913609596 + 0.004695477215281391im
   -0.020442694179312514 - 0.010603104560638024im
   -0.014185787093153207 - 0.007630531258207886im
   -0.001590109011898166 - 0.005850096535282455im
     0.03849152226003447 + 0.026294822828619776im
    8.771441224525473e-5 - 0.008478733057480316im
  0.00036334115531600793 + 0.0062587860306906025im
    -0.02272053598205836 - 0.01720229710363281im
   0.0065210941511277465 - 0.0416945538626658im
  -0.0023368703735087656 - 0.01763811408026271im
    0.003641431218063122 + 0.009525613065323396im
     0.01384201878254319 - 0.014386791155494148im
   -0.013565237430946835 - 0.007771470125640485im
 -0.00010588185831761835 + 0.010655664888371007im
   -0.005632619853148321 + 0.01569133174411734im
   -0.006591618436596916 - 0.02466520313344573im
   -0.005104604668315769 - 0.0023953544701069136im
     -0.0083140800420239 - 0.018281523023079713im
   0.0006254305417761625 + 0.007620306703947181im
     0.03677995173304473 + 0.018228841810106144im
    -0.00794089485743761 - 0.0015194041583202016im
    0.007964129140757798 - 0.014865045584236007im
   -0.029238118468019148 + 0.01890892666189295im
   -0.016152578964906364 + 0.023717052825950137im
   -0.024171109553634457 - 0.003788770289644432im
     0.04479914118766167 - 0.021873482585262654im
    0.045261019817798356 + 0.01060971861262596im
    0.014316847811106112 + 0.015247714740339645im
    0.024631333090016094 + 0.009048216111131331im
   -0.013519767365630158 - 0.05554103464698227im
    0.012802688416895391 - 0.0008603559617876027im
     -0.0176992385250414 + 0.035005185989996995im
    -0.06538420107202261 - 0.00724643227034528im
 -0.00033231580429149025 - 0.009061207935607584im
    0.027749566596153765 + 0.023638039247011928im
    0.024603996617839168 + 0.010160019962419317im
   -0.000625617622544875 + 0.03788442871239541im
    0.008924425410008957 - 0.012751617161802571im
     0.02399933158201368 + 0.03806474462502934im
     0.01826874349543143 - 0.0010892053462843614im
    -0.03233212807070292 + 0.02360490779298885im
   -0.014916013966134073 + 0.013035787278939495im
   -0.020540414917206363 - 0.02873932702445573im
   -0.010740079201169482 + 0.002353558091988316im
    0.026071150241862743 - 0.0032469678785921746im
    0.009645402210712497 - 0.02543967850649557im
    0.039546598695141294 + 0.012983616893362963im
    -0.01984185893423768 - 0.0386117731177394im
    0.011366493016935984 - 0.0003511664618721859im
   -0.014624683566441865 + 0.002461746545821025im
    0.005497245863858403 - 0.0016974615161892109im
   -0.018159117182089037 + 0.014446216444940955im
     0.01058078862348389 - 0.04034039279204416im
    0.007112978775981111 + 0.0432904758377096im
    0.012457120525853143 - 0.018293350028317494im
    0.011749610071934898 + 0.03153135946868036im
   -0.024258264707407454 - 0.0026131197617177554im
    0.028914602514854178 + 0.005111133607050079im
    0.026941190487552114 + 0.04222264183733518im
   -0.018668563803807693 + 0.0072038150691335874im
     0.01336593876306584 - 0.020188113217127213im
   -0.003731447323046421 - 0.002796895408056813im
   -0.030620001095045056 - 0.019491167663685898im
   0.0005756429501572755 - 0.032616297938125025im
    0.021760923108943432 + 0.0007652704644357098im
   -0.022452423501780314 + 0.001338936189174919im
   -0.019453785382029035 - 0.0018845028865655824im
     0.04334772318722096 - 0.013555602873973976im
    0.019368021847614155 - 0.006139790983932839im
  -0.0006799576224598839 - 0.023781324993771353im
   0.0041914012628408315 - 0.06621369894726083im
  -0.0044431526706253015 - 0.04140372292648525im
   -0.014830431343605335 - 0.027807073160770315im
   0.0022369501676146246 + 0.015314357450450544im
    0.017467965232576536 + 0.015984838304889643im
    0.015879878198918774 + 0.004534909960503997im
   -0.007325932175894769 + 0.018557291163863468im
    -0.02794182903920212 - 0.03907540419045534im
    0.003984917562034201 + 0.004416742028184751im
    0.026036291100893175 + 0.0024864416464928777im
   -0.008741058365016149 + 0.004579890392607528im
    0.010179624002907188 + 7.999680486368716e-5im
   -0.015305878240875155 - 0.002747822554889994im
   -0.018423156300667858 - 0.0006441242799183075im
  -0.0043719566749098595 + 0.005332897296502805im
    0.012422586133140437 - 0.010856123389095945im
    0.015421236200317138 + 0.022370850639520073im
    0.017367034586621866 - 0.010630700700852997im
   0.0026528215140627157 + 0.014324075837718987im
    0.009492474151863701 + 0.014718260840451337im
    0.014884141276103541 - 0.0025703845523025186im
   -0.011285839713727005 - 0.003124652231800374im
   -0.024031563065195688 + 0.012293725312672726im
   -0.014838053374098749 + 0.0029827863241085844im
   -0.020032262916050567 + 0.013444327052520298im
    0.011594647267727217 - 0.00689445156422873im
   -0.018078389425310183 + 0.002063168750336112im
   -0.025585141670230682 + 0.019238417165781868im
    0.005132044688704652 - 0.04491507509242631im
   0.0076749528574351755 + 0.017602390250339016im
   -0.036902243627494696 - 0.02038346545009073im
  -0.0017459984414519467 - 0.025988587014399798im
    0.031780119435087004 + 0.006090630034830018im
  -0.0002428159993071833 + 0.038428896176730426im
   -0.013037131630666957 + 0.0051968904580794424im
   -0.013475902983316038 + 0.03427291529939044im
   -0.002955969904599549 - 0.019455409920540977im
    -0.03280475824916757 + 0.012460067619040208im
     -0.0340701689247154 - 0.039017408230483865im
   -0.004858723812386409 - 0.00024008087246141653im
   -0.007301381277630628 + 0.03588686254493152im
     0.02344721178459349 + 0.003098689369949732im
    0.014002179034803715 - 0.0330991061180485im
    0.019870260634992188 + 0.009356359604119333im
   -0.021292262833920227 + 0.029443238790719962im
    -0.02065424701792929 + 0.000776841449413948im
    -0.02041896333423325 - 0.022263972051673225im
   -0.027017650881992872 + 0.056093258309271414im
    0.012752897019331388 - 0.01933412195542934im
     -0.0126188721971436 + 0.04140857038493466im
   -0.020880375907634852 - 0.033759782585928155im
  -0.0060023294734024195 - 0.061036332047630516im
    0.017366970547672205 - 0.03242620197271476im
   -0.017215720464682366 - 0.018183992907046857im
      0.0329652377479115 + 0.004907976254757626im
   -0.003425602916251401 - 0.007398273877270911im
    -0.03244929132913048 + 0.0020888082446887755im
   0.0016046556209830783 + 0.016667345262961444im
   -0.011067382401627513 + 0.034406696913940576im
   -0.009863776141919533 - 0.019443648322546102im
   -0.021553985658884032 - 0.026776715669093173im
   0.0007027211652052248 + 0.033906135735295155im
   -0.016522755554248127 + 0.025745258299271573im
     0.01811054359489835 - 0.03937530682380041im
   -0.020627049594835793 - 0.028017398264647206im
    0.022541570765041444 + 0.001349660060823503im
     0.01637197783724386 + 0.026422844711960644im
    -0.02756355769450298 - 0.006399228231043882im
   -0.027078674162299827 + 0.08045812813670707im
   -0.008491057723451859 + 0.006216165747822573im
   -0.013749380367935346 + 0.00010778507486759449im
  -0.0018905762703819622 - 0.0066153813930726136im
   -0.017189529125799182 - 0.01676985207592787im
   -0.001456030060134681 - 0.044107343100597086im
   -0.021065022367256596 + 0.018244833496782263im
    0.021346852325091648 - 0.03635593882927272im
    -0.01842058709202184 - 0.03115613863709024im
     0.00845605693003543 - 0.0018822121429486742im
   -0.009624351842435205 - 0.011507732052972737im
   -0.007337271907973686 + 0.0038814052875983593im
    0.023424690573191662 + 0.007335755113069455im
   -0.038102527553371304 - 0.015964454891070852im
    0.019306555841418563 + 0.040075462003425676im
    0.016114687347563723 - 0.0006083658425160718im
   -0.035008736134703726 - 0.022331435058038626im
     0.01030665477406909 - 0.032873881022038275im
   -0.005569531216793724 + 0.02833393438262354im
    0.023375122246863063 + 0.02088406690783278im
    0.014764644433517226 + 0.010326406726199649im
    0.006847289687342063 + 0.015788118761856595im
    0.011492429121617864 + 0.015311376774613708im
   -0.009018431175028487 - 0.003906571804983629im
   -0.021109677487801015 - 0.0025076494028300634im
   -0.042192842314661284 - 0.004560568380519501im
   -0.018094331272223815 - 0.03407154911774179im
   -0.013570627736573412 - 0.014431761010539342im
     0.02404946750475625 + 0.0031274702371731447im
  -0.0053318029040244855 + 0.01358807956709337im
   0.0053541360964343395 + 0.00957192762689599im
  -0.0035141095845787457 - 0.02538210845072203im
    0.012591113537439446 + 0.020741361418734037im
    0.030720785593767033 + 0.013648701341022449im
   -0.014533283406852155 - 0.00956540665054994im
    0.014403342400581286 + 0.029347068448038006im
   -0.015393980897708902 + 0.0017954608845713385im
   -0.011723365066497116 - 0.034796732857597414im
    0.022469353234691795 - 0.029221273802365465im
    -0.02653205190328309 - 0.0054591856016851965im
     0.02423743711524292 + 0.003265264471168883im
   -0.030460269261233696 + 0.011807411486528106im
   -0.015635529738691187 - 0.038554603525221165im
   0.0064125027365006014 - 0.00885315913873746im
    0.021298256856647185 + 0.014604698598324245im
    0.023170469869828354 - 0.006494961931878569im
   0.0011348659325365388 - 0.023210005852895163im
    0.024013745313621156 - 0.016300111438859562im
    0.006069693662073043 + 0.014835817369894306im
    0.009560624027384857 + 0.015198447119666716im
   -0.009273852175177328 + 0.017428913991387053im
    0.015314036775053186 + 0.029717713882379006im
   -0.007711009411070649 - 0.007696824133016479im
   -0.018459039220647296 - 0.026008259376302557im
    0.024370056707410187 - 0.0194300203207489im
    -0.03731568607223507 + 0.02436869200976186im
   -0.025794295202383844 - 0.0294376597294266im
    -0.03128225877248662 + 0.008790486907758762im
    -0.01899656632478679 + 0.007975224378433012im
    0.026019833648809474 - 0.019732242493817113im
    -0.01635884939102476 + 0.04195597996422947im
    0.013181042665035263 - 0.002619318595220443im
    0.011573217866719056 - 0.016005687556653388im
    -0.03422160600434415 - 0.002926196681072861im
    0.023439676259209823 - 0.01100774552122261im
   -0.004094747499221617 + 0.016593019750447007im
     0.03974189147553314 + 0.009584736805575497im
    -0.05134865231870043 + 0.03257155510312193im
    0.020015743479378026 - 0.004871091317259857im
   -0.003089144914487481 + 0.026339848124832227im
     0.03512622459082153 - 0.006816344448842647im
  -0.0015061033116831745 - 0.01029954252404381im
   0.0008187813475996147 + 0.026076461811416266im
   -0.007317395148379695 + 0.032710677478149874im
   -0.030255155369037393 + 0.024276356969501336im
     0.00537645243157614 - 0.032377598763932286im
    0.015328255173627648 - 0.0033014698961411635im
    0.007577670144467716 + 0.0024409205469691007im
    0.007446481445265675 - 0.0453581444200246im
    0.012924124569430588 + 0.0035247283647596456im
   -0.005082514487924524 - 0.016317961226996393im
   -0.015305809221565688 - 0.01691029148050759im
   -0.020577524349649864 + 0.008260671493318397im
  -0.0046941916431588425 - 0.020299215971379275im
    0.005358415904277367 - 0.007347303176573819im
   -0.002114753101095429 - 0.002480875421726969im
     -0.0358178959311153 - 0.04758503516543191im
  -0.0019111160235022932 + 0.0522433761449275im
   -0.022620363411012423 - 0.014978968608033908im
    0.011676532669815826 + 0.015201245686152337im
    0.006798159336257141 - 0.0013122990550583397im
   -0.010823950066702693 + 0.0005036526222600114im
    0.005784174502974174 - 0.005958680051727665im
  -0.0015732134185086678 + 0.04025667596401392im
   0.0071300534024318464 - 0.016758337604431982im
    -0.02964571569935691 - 0.0006571683734867819im
    0.028802602615472836 - 0.03072165451450894im
   -0.028209399851950402 - 0.00567368399450753im
     0.02859524967837101 - 0.01830985820090473im
     0.02623059857148097 - 0.010638322477448206im
    -0.03552398327660609 + 0.004970203567151116im
    0.007159669723489436 + 0.005666476130662125im
    -0.03668853343733273 - 0.02625666192928127im
   -0.008326068802963176 - 0.021884939044670645im
    -0.00636637851593631 - 0.008193385945847764im
     0.04174247688632309 + 0.004076671041952686im
    -0.01664139886796593 - 0.014941417737391225im
    0.027902268017412798 + 0.017355197052156615im
    0.010150523517295071 - 0.009395729137274898im
   0.0017527697936996014 - 0.03580343664687632im
    0.006763274282680055 + 0.011016773492082741im
    -0.01614083489924413 - 0.014708063729159518im
   -0.004880526318626825 - 0.011063442197038786im
    0.007944409547068234 - 0.008001487715664092im
   -0.016357304114584106 + 0.012089185712793556im
   0.0026407250631155076 - 0.005873581423018882im
    0.020658193652998966 - 0.004644262044967806im
     0.01670900063493992 - 0.014363055334501615im
   -0.012744219891478887 + 0.01805240659200968im
  -0.0009223097390957653 - 0.04273204605118806im
    -0.02775127202705651 + 0.0003693561911863755im
    0.008321269368388248 - 0.03645489524041679im
   -0.011516161239204402 - 0.038255525629847284im
    0.002011714718232186 + 0.016264103621151577im
   -0.006191115433447384 + 0.004681345152807317im
   -0.016913140476605956 - 0.004673890560013735im
    0.026012515763590437 - 0.018544030226780944im
 -0.00015896467668917102 - 0.024718669692231im
    0.006047844355330553 + 0.017188860715925305im
    -0.02271143306373667 + 0.03277840173222902im
    -0.03221984941947238 - 0.02719792232870785im
    0.029126609201156013 - 0.014510974798429745im
  -0.0023879797048605655 + 0.009911961259895958im
     0.02857980204245901 + 0.005037238019348199im
  -0.0041621087546625125 - 0.00019760444912873587im
   -0.036631360086283836 - 0.006893131072278872im
    0.040810084982897975 - 0.009573966756527202im
   -0.009983366725910962 + 0.0026381177842457085im
  -0.0006763670441672316 - 0.04151916845004607im
    0.024870348694677795 + 0.008863975582107856im
    0.002089341910888974 - 0.004049213732459038im
   -0.004918648655250857 + 0.005053337941479098im
  0.00045528522730906197 - 0.010497610188056752im
     0.01423736700723911 - 0.010272874716974844im
    -0.01372448893166423 + 0.010275364152093262im
   -0.027608787848471684 - 0.0032755718363572097im
   -0.023101478574707977 - 0.016925903092612188im
    0.004144669139249145 + 0.016076215832687295im
   -0.011802446347029365 + 0.04342317208446847im
     0.02600983922412957 + 0.02354385133869578im
    0.010173341868453938 + 0.02375630518479942im
   -0.012706876681661799 + 0.0032134867382789057im
   -0.011852076297142057 + 0.030606796520135517im
    0.036173222696014286 + 0.05354373841692023im
     0.01808786157849614 - 0.004867684588575713im
     0.00953754336468613 + 0.012799323240498947im
     0.02082594034460835 - 0.00140094862781809im
    0.035141342513441094 - 0.04333695879397648im
     0.01613827372090085 + 0.04185984297349459im
    0.017516836170265983 - 0.012799471264578425im
   -0.012101336256700183 - 0.013114646709054989im
     0.01817853595625858 + 0.013149995459793581im
    0.022416537056115026 + 0.00461301333368149im
    -0.04816611197386943 - 0.03006542590336239im
   -0.006834667007867927 + 0.024244370412254614im
  -1.4891061400911262e-5 + 0.02140633358032769im
   -0.042356275424272866 - 0.02116091621149253im
    0.040715213047481345 - 0.0036366300563865942im
    0.028222222819107756 - 0.014719637588910449im
    0.004813459227104594 - 0.012789520775612625im
   0.0038604171274221506 + 0.02108652540119486im
    0.006432338039968135 - 0.01337590652625846im
     0.04013286630261866 - 0.007439943406129961im
   -0.002898437129058852 - 0.030066108349121365im
   -0.024722496955679584 - 0.00810504251180463im
    0.010149427257210361 + 0.022414010559807483im
    0.011689980229367711 - 0.0008099536148091618im
    -0.04809485003787726 - 0.020160260192233256im
     0.02252179923403231 + 0.007760413471046896im
     0.03643856898900711 - 0.0011518492952874988im
   -0.004274574946781173 + 0.005062104252213169im
    0.012833207987808525 + 0.015266331260365324im
    0.022337286014405294 - 0.010114091286720962im
   -0.020271130439109462 + 0.015079506936299138im
     0.05470463828191268 - 0.018739000884941816im
  -0.0015670581878876812 + 0.0016891066068663203im
   -0.061542143756223085 - 0.008874417664508848im
    0.022357553690932182 + 0.016033919478170084im
   -0.029933286285571216 + 0.012118710302658656im
    -0.03189485239291487 + 0.000996506794840592im
    0.033262636617085464 + 0.024286736314696817im
     0.02989661385557022 + 0.0156394315004392im
    0.014018872996860901 - 0.0009067226357943343im
    0.025302163335658327 + 0.037398945116505496im
    0.018329664878033513 - 0.03473877056084864im
    0.004593611310321719 - 0.023899264737314643im
   -0.005703989234800277 - 0.015335660170018472im
    0.037878372966952116 + 0.03862072617844753im
     0.01896640371840549 + 0.009084062743184665im
   -0.013765886840829068 - 0.005216196245251825im
    0.015115523008452404 + 0.01582981351326879im
    0.005564614463294125 + 0.01753231554932045im
    -0.03358274726737366 + 0.01132015676676739im
   -0.026196004695915476 - 0.02555230844661483im
    0.012722318731246336 - 0.015924877886822987im
    0.004823729274051881 - 0.01968772264292498im
     0.00874121318200723 + 0.022711358475981207im
   -0.010894704407730283 - 0.002347831453384135im
    0.020848249721825703 + 0.004579887070357717im
   -0.006057061893489913 - 0.04372691224078416im
   -0.002640914068487435 + 0.01307059628134491im
    0.019914642665776104 + 0.009276437904050368im
     0.01259121261842192 + 0.0002611665299678223im
   -0.011927070748190613 + 0.005986392277959901im
     0.01655175645906926 - 0.012711814692684517im
     0.03296372226812388 + 0.007174114731884084im
       0.041058993705206 + 0.03980879357874605im
   -0.012080834942294371 + 0.02402484899987755im
   0.0037943954181506863 + 0.007763135786258773im
   -0.005735147040592171 - 0.01975254125003932im
    0.015321769045890546 + 0.01815775176950519im
   0.0011505308255439673 + 0.01516596152746589im
    -0.07126886278676078 + 0.032819279762768334im
   -0.007750835445362391 - 0.009332661380206102im
    -0.03707107246826844 - 0.010116928765782431im
   -0.011517306171334611 - 0.017873063400172657im
    -0.05051038426581521 + 0.051148829020150305im
   -0.019963011626214385 - 0.020915071487614633im
    0.000630334571836446 + 0.023184575047950927im
     0.02714991264378965 - 0.011813294571520158im
   0.0035481789368824418 + 0.014763352916910244im
    0.019352949785558002 + 0.0013272897508467619im
  -0.0011287922582154035 + 0.011948984049000574im
    -0.04072592615998917 - 0.028186141662201205im
     0.03636537600809028 + 0.01316613504233491im
   0.0035683065722482777 - 0.016011990969449972im
    0.015699392523431884 + 0.03842090680933357im
    0.009928461014230025 - 0.03495749781281457im
    0.025241851202614508 + 0.012183713167058755im
   -0.004975407070221291 - 0.03739661696608232im
   0.0011744053656644051 - 0.004522998397786963im
    0.027165980374957766 - 0.003489359272629874im
   -0.007507389932035303 - 0.005985754483197788im
   -0.009394433108971034 - 0.0004550463956343829im
   -0.017208481340975617 + 0.002138149066145274im
  0.00023420410775651626 + 0.015132697115780202im
     -0.0532707393683298 + 0.00731638562480506im
    0.016909995621747862 + 0.007583196453810638im
   -0.032454013620030114 - 0.022510153783839477im
   -0.013738534830166328 + 0.015449609101013664im
    0.014137089668656363 - 0.024852761925506128im
   -0.029469068742624237 + 0.031056391702218286im
   -0.016314032888572052 + 0.01421117000188035im
   0.0028880373628817307 - 0.02282364505318479im
    0.050980511303535044 - 0.006483063791184828im
    0.020998997772358103 + 0.04908789501941746im
    0.015302141415637877 - 0.03920368498458561im
   -0.018835664167029254 + 0.01254230061963966im
  0.00012043035505055033 + 0.01437501634866302im
   0.0028059992530771235 + 0.009975618169033695im
   0.0036522106280725075 + 0.01002150443620739im
   -0.023280346082640433 + 0.011556003789602047im
  -0.0072433594010689875 - 0.006158960847892813im
   -0.030198781783954024 + 0.0032664050906760886im
    -0.02686198193756476 - 0.0029792270369704736im
    0.005902444632224735 - 0.015864045179485125im
   -0.008387228088901843 + 0.0059394630695916596im
    0.007518213667205389 - 0.03399040443621289im
   -0.029754788018958353 - 0.021900480609292252im
    0.006128718421351386 + 0.015973979795287217im
    0.024351113361452372 - 0.024864834241916507im
    0.024801611698408006 + 0.0004736483726223454im
    -0.05061142060724672 - 0.0165343353110301im
   0.0011123559952569391 + 0.016392670787732638im
    0.007978468967678695 + 0.043543699471233856im
   -0.019382456306347422 + 0.005151489682011991im
    -0.01680345615107271 - 0.0116227179640726im
   -0.019243141858975667 + 0.007152311868562457im
   -0.010452131080795192 - 0.0007146441204578947im
    0.006381378247609196 - 0.026518596861929623im
     0.03410307171091574 + 0.02492422795196981im
    0.011977953349432566 - 0.001906249903613579im
   -0.005196399939818205 + 0.026418834297163445im
   -0.012451480144354776 + 0.01008009570231802im
     0.01481690327395451 + 0.01939546104297881im
     0.00624640879037579 - 0.031908749421401546im
  -0.0067179227684919865 - 0.002883289145263779im
     0.01821870782876107 - 0.012826735396468898im
  -0.0015570696620254203 - 0.008903675979799089im
      0.0217210759511182 - 0.01668381184837636im
    -0.03792208873175276 + 0.021368638995249146im
   -0.017880439814971172 - 0.0003237733248669062im
    0.029456114196561006 + 0.03135815358895691im
   0.0034227452651774595 - 0.04285343510683454im
    0.004219135111138294 - 0.009869452923750056im
   -0.005160581694832467 + 0.01261007455317461im
   -0.010129068284244949 - 0.0057898197232452405im
    -0.00943119763757457 - 0.025643555433456307im
   -0.010929024048848964 + 0.03892981255950133im
   -0.005204135326700292 - 0.023825079970989815im
    0.020275715735380003 - 0.0343397464348764im
    -0.02546792922115115 - 0.0004113591690186539im
   -0.030933089812314515 + 0.00477930743282526im
   -0.016333069097303966 + 0.03181936622419022im
    -0.01147252136352551 - 0.002508313806811482im
   -0.011339648975827824 - 0.012366792154204493im
    -0.03105750018386733 + 0.0014618290098053486im
    0.022957529978957787 - 0.01262084527177074im
   -0.030775060109241484 + 0.019142399863070834im
     0.01930222378604955 + 0.00011659537607880757im
    -0.04713042349107572 - 0.05614902905279786im
  -0.0012961230654104136 + 0.023624313128394858im
   -0.010074930596552633 - 0.009807149290325768im
   0.0008325428457054049 - 0.026936796896968873im
    0.006291965443189329 + 0.035433204249777334im
    -0.03465070197886699 - 0.010641306743889075im
    0.010193221105592344 + 0.04312438806553338im
    0.027667932068912132 + 0.00552982332533833im
    0.008329708627708682 - 0.006454008622473012im
   -0.004114559850936838 - 0.014143684897571002im
    0.026632702048564307 - 0.029593539275271575im
   -0.017105725033636218 - 0.02325503367663366im
  -0.0007581328811182298 + 0.0013649588475011974im
   -0.030684675782914318 + 0.02208575868596306im
     0.02370803978766076 + 0.01262988907988751im
    0.012115678558405967 + 0.020142093491731957im
  -0.0016445260148204926 + 0.028645698806802868im
   -0.004765177914351827 - 0.027687220247199672im
   -0.018287364762258895 + 0.013815368220184065im
   -0.021418512341794396 + 0.005653228273213623im
   -0.020148522877793264 + 0.0065531461853964275im
    0.017177389802765758 - 0.02138929449678346im
    -0.03391115382630599 + 0.008425375831919496im
  -0.0027873361998459897 - 0.00386269005564572im
    -0.03339706984827822 + 0.027143639985297754im
  -0.0007214845863330592 + 0.025308603491255546im
   -0.009119374441493909 + 0.003478239081741192im
    0.012977908659035623 + 0.012560900283457216im
    0.023376093749811203 - 0.018648020617977462im
  -0.0032582369189379417 - 0.00534583058552542im
  -0.0018888781808346217 - 0.015071619543076925im
    -0.05885704834151814 + 0.0074396681257649635im
    0.023587466658063345 + 0.020458538286302008im
    0.016992269791165124 - 0.013606819402952795im
    0.015692030049785716 + 0.013108930018680088im
   -0.024869500359558767 - 0.007898948469485708im
     0.01778012566855988 - 0.030058308243527964im
    0.014878440500823924 - 0.02945607879266696im
     0.03246480227495992 + 0.04624380944846101im
    -0.02518046209634169 + 0.01624429469612299im
    0.022946649733227208 - 0.002533290595728636im
     0.01884288024470021 - 0.0302289793783849im
   -0.007411419010636673 - 0.028274808416130115im
    0.032343536803083724 + 0.0037123082354848457im
    0.005146987548060319 + 0.005025504462291608im
    0.004714205082669328 + 0.022723549074791426im
     0.01695415498143948 + 0.010367113207683295im
    -0.01517746317559227 - 0.027366850730279873im
     0.02102674992144847 - 0.002633685706843708im
     -0.0332240488272656 - 0.002932924609816635im
     0.06764082130067299 + 0.019002947938408156im
   -0.023360561560443596 - 0.0002905985543042129im
     0.00874343392527618 - 0.007968749382584815im
    -0.03348865672121139 + 0.01993689008341001im
    -0.03989982179704857 + 0.022767768645459586im
    0.015046546724047984 + 0.02190939372934271im
   -0.026671247472951444 + 0.05353396571747529im
  -0.0034608273505835094 - 0.007501169843148813im
   -0.006648034809180419 - 0.03264161888182877im
    -0.02397649335581483 - 0.016304902863886063im
     0.01069923155841524 - 0.03313687261599319im
   -0.006512084967665517 - 0.01437499164539029im
     0.01657259993862908 - 0.024884899831159834im
    0.021478572080022816 + 0.020365086252201858im
   -0.012637988195681113 - 0.04574823654187461im
    0.022287859551757324 - 0.00542449554510645im
    -0.02767502318206079 + 0.0245605744108033im
    0.002384315089366399 + 0.03560301752623274im
   -0.006477823945614592 - 0.023262823012868142im
   -0.015399321083309794 + 0.013680742316103355im
   -0.020010163628057926 - 0.03461962603487169im
    0.018619872798919374 + 0.00912179078014741im
   -0.020810183386899175 - 0.013410869414817584im
   -0.004157342634449362 - 0.009583593373738361im
  -0.0055066911179137415 + 0.011583085475446482im
    0.015786291583510383 + 0.03206121712514997im
  0.00012441385760639714 + 0.0223826310576782im
   -0.008489438159374646 + 0.021651965195059606im
    0.012883054148961863 + 0.019030438531513674im
   -0.024316430552901534 + 0.03770200429805067im
   -0.008308259279793248 - 0.0065151847751124745im
   -0.015779020857107133 + 0.00968756997423956im
    -0.05168164352591343 - 0.009713782418670264im
     -0.0204852773790541 + 0.02998604986904297im
   -0.008897315826409609 - 0.02210101385771236im
   -0.006507821315124606 + 0.004229354580500525im
   -0.024503891509924366 - 0.0293758934828035im
     -0.0182224326701984 - 0.011780860423364686im
    -0.03196586416882962 - 0.01769501294696784im
    0.005194929283520366 - 0.018212317991745244im
      0.0447186961976014 + 0.009948819264427436im
   -0.010632492527565623 + 0.025595797194761072im
   -0.004333736020295886 - 0.022134869735673763im
  -0.0038891228085858286 - 0.052181453591585096im
    0.007982531646420543 + 0.009295109303533142im
     0.00897300353586211 - 0.01102379197700427im
     0.03113579574225869 + 0.026726715938630685im
   -0.004651374489578913 + 0.013623420101039422im
     0.03311561069918322 - 0.018976693295474793im
   -0.015878866070375072 - 0.026231928918369007im
   -0.006315321077002086 - 0.00624694343784445im
    0.020752285824941184 + 0.01731889597172792im
    -0.02545912265153968 - 0.011334143819392597im
    0.030562579843114477 - 0.0024380714121545076im
    0.018079856055934342 + 0.007473172165466092im
    0.026910489247860776 - 0.0027627272021056868im
 -0.00026083412713827895 + 0.017805757098895297im
   0.0022884770592911134 + 0.02254941195020532im
  0.00022469382601862032 + 0.030869904799388167im
     0.01285677706920675 + 0.009270850531160807im
   -0.013558636098852333 - 0.026771782489696014im
    0.007871116541368562 - 0.006914494499586335im
   -0.006402434295839889 - 0.007810576349654004im
   -0.022450683885985624 + 0.01837829580737222im
    -0.01877915644094552 - 0.02958330857736913im
   -0.015747235153079804 - 0.021685652282847im
    0.011793967069528422 + 0.009100655447681072im
   -0.005666568341401794 - 0.007580766492157812im
    0.004135961665854124 - 0.017113161026977918im
    0.018010031861687616 + 0.0123624182208648im
    -0.01143835845545388 + 0.012462168794617564im
   -0.041332015697595544 - 0.006716659212425927im
     0.04402432082781632 - 0.010375492309606759im
   -0.013304683874981989 - 0.01290036028519931im
  -0.0006035237796053029 - 0.005551145896778046im
   -0.013804489267279275 + 0.019666579759562194im
     0.03944258170538342 - 0.027181538475983175im
   -0.004276752383975712 - 0.038467491994245165im
   0.0029004892410420128 + 0.0332939249564562im
     0.01919353314669023 + 0.0375727287286702im
    0.012934942381762002 - 0.021714575148988533im
   -0.029698022793332838 + 0.011140757194703461im
   -0.004011615371595884 + 0.004402639837715698im
  -0.0031601843514530896 - 0.007657895447898219im
    0.015257489111622629 + 0.0008756372162865511im
    0.023839701161235655 + 0.005574773966541186im
     -0.0173243840261313 - 0.015906956036112602im
     0.01984164003639503 + 0.023304147722163743im
     0.03806962892427772 - 0.007440099414738259im
     0.03920925032239148 + 0.0005599486862588162im
      0.0499707942998497 + 0.0029570139797232943im
   -0.008608330104561539 - 0.010343069191186782im
   -0.005572144275754331 - 0.018529362611305167im
    -0.02374251975376648 + 0.0165635865013828im
  -0.0023203545363474896 + 0.010896954937712618im
   -0.007713725680727763 + 0.0026459054556832707im
    -0.03213533204782297 + 0.008432495786674071im
   0.0035582048434410585 - 0.004236916329089719im
   -0.011967756850662013 - 0.0006182554755624811im
     -0.0139662269309484 + 0.06046577372742575im
    0.021189691242622686 - 0.0041868316694372385im
   -0.021155465193013978 - 0.00480466289203512im
   -0.009261214001116375 + 0.01356962905709777im
   -0.014343491486153005 - 0.005504797197804277im
   -0.005614405928249086 + 0.008365932611716913im
     0.04829143134314092 - 0.02092010494137149im
    0.031714208538776156 + 0.0007806689892784331im
    0.029914514462906872 - 0.018876610804642993im
   -0.000507430755351397 - 0.023727351256131818im
     -0.0590226873035304 + 0.05505648410282877im
    0.003076310258516055 - 0.00882574621032277im
     0.01306102020123667 - 0.0038024885026147585im
   -0.018561017705733106 - 0.0164593547993782im
   -0.036444441782675904 - 0.002577245773039719im
    -0.06153898075115467 + 0.03267308378276024im
     0.06172619891790472 + 0.027141067907774475im
    -0.01581504689754764 - 1.990524341695684e-5im
    -0.03381894716392777 - 0.005395202959018868im
   0.0033588511013063387 + 0.05580246807750236im
    -0.02548071381404367 - 0.0055603884219195985im
    0.003993659284767359 - 0.01799772538699005im
    -0.02091109416749432 - 0.061876657617766784im
    -0.02045687743223374 + 0.010985517411798146im
   -0.016655655482306332 - 0.003035169998217504im
     -0.0399570037370632 - 0.036459856908341186im
    0.032838508461728935 - 0.04018019339070172im
    0.020157886644679993 + 0.022596406018463053im
   -0.011066527367984394 - 0.02827137478474075im
      0.0222077514832945 + 0.00217414045911541im
  -0.0012094473225994606 + 0.025002069410843993im
      -0.032432835743131 + 0.008957511031265327im
    0.017370975100508758 - 0.0317915033719825im
   -0.009365899915037315 - 0.032042234748595945im
   -0.057881676811010724 - 0.003377347820647743im
     0.01204336735755812 - 0.02096439370794695im
    0.013710057110965266 - 0.007867406290069486im
    0.006381313150666816 - 0.004039918318899203im
     0.03791365678577299 + 0.020334115017334273im
     0.00862263693782475 + 0.02046183707699696im
    -0.00664816876717778 + 0.023650355646300632im
    0.019537164080862725 - 0.016911686728290572im
    -0.03728818839281884 - 0.011231138870835851im
    -0.01153297427220386 + 0.0038290946229256125im
    0.010405995855518494 - 0.011894010995227376im
    0.009652107967451735 + 0.033952479821936575im
    0.015666874386001835 + 0.02794610744236684im
    0.010521551708886042 + 0.010669766236680816im
    0.017556035761402185 + 0.012335537860469223im
    0.057458558806942235 + 0.015434689923650427im
    -0.05371108457489605 + 0.031911745641221644im
    -0.04201175787677742 - 0.008999019470310734im
   -0.001257381234127788 - 0.0029477115734963116im
    0.023384940667168196 - 0.004288761437716564im
    -0.03526123616352015 + 0.01066340299382035im
    0.009932723283055257 + 0.003635477506112481im
    0.004842486225442467 + 0.006111045233620148im
   -0.014226796707601875 + 0.015968606976557147im
    0.015170509143508095 + 0.0039023414335434235im
    0.010095742770952404 + 0.00738110223152819im
   -0.013839399777660499 - 0.010352758705691112im
     0.01299964587551087 + 0.009106398859430875im
    0.018807689636658867 + 0.006687207566054147im
   -0.007652885842525642 + 0.01270011262579539im
    0.014275714302638725 + 0.02404692169942094im
   -0.029538858858553733 + 0.01920086625943136im
    0.008672033955082365 + 0.011751211787620647im
   4.2325513889669796e-5 - 0.05760985229260032im
   -0.024234045608197415 + 0.05291805680035001im
    0.027512660795323444 + 0.02345440043632708im
   -0.015839554059720675 + 0.023717244584220348im
    0.007826562906559477 - 0.008802703722253327im
    0.009468621762526741 + 0.025544003356215865im
    0.033923837556748354 + 0.032417001006476924im
  0.00045374118358852705 - 0.011270736409565761im
    0.017092182274774822 - 0.01586308291747935im
   -0.018863029360302108 + 0.015944748702277675im
     0.01882315489214481 + 0.013014085940955156im
    0.010383892878138538 + 0.030369506875258228im
  -0.0057499388175097175 - 0.032264266522557476im
  -0.0009451887036485659 - 0.04806683007643882im
    0.012971278613654009 + 0.03454524074358922im
  -0.0014947201838008042 - 0.010822179788403486im
    -0.02190591033693901 + 0.006315196958665563im
     0.03383931601184534 + 0.00431562269590538im
   -0.014106102061637135 + 0.04324399995605192im
    -0.02066347182293522 - 0.028022282989131453im
   -0.033458269927838805 - 0.019119983758657512im
    0.007349527700917277 - 0.02787745398007817im
   -0.005433827626109177 + 0.016378142864060856im
   0.0017461959137817895 - 0.037541221276943725im
    0.013219106904221425 - 0.013119410878286662im
     -0.0291094948633226 - 4.860232243303344e-5im
     -0.0195725135397318 + 0.015568087864994551im
   -0.020536067328456656 - 0.001355447057251214im
    0.012294981983223686 - 0.03890266118139537im
    -0.01698571750744243 + 0.00817346896503827im
    -0.03175172950767558 + 0.011144543355037043im
   0.0051740202324505186 - 0.02717591731497996im
   -0.019698753634423565 + 0.0168600753791265im
  -0.0011313329172710322 - 0.009795352450495934im
   -0.011295061643626649 + 0.004590269032577611im
   -0.015165845195019203 - 0.0017210736538747636im
    0.006907242072822121 - 0.015855528166451933im
   -0.021975985228411397 + 0.007889696874834921im
   0.0038063577508730896 + 0.007188251337796408im
     0.04488515004319512 - 0.026006094527350872im
    -0.00669228199765277 - 0.015332601461225786im
   -0.013529873921013824 + 0.01620014857658309im
    0.017805488864304247 - 0.027855583175010922im
    0.032491248216304995 + 0.004571044972274971im
    0.019835677289845918 - 0.005739809979519199im
   -0.027485183337312986 + 0.00034327274342163907im
    0.029374682984883556 + 0.02291405746199496im
   -0.008446482341334039 - 0.01592386165124783im
     0.05110333969167285 + 0.014916621481133435im
   -0.011457598401658374 - 0.01915541822741288im
     0.01173040040566382 + 0.002853126298160795im
   0.0003827083405574552 + 0.0006575553313809452im
     0.05492716889674559 + 0.043432193810297594im
    0.026539296332511036 - 0.013744535844278387im
     0.01478952958426907 - 0.006004239559073214im
  -0.0054014055048655545 + 0.00508630079219226im
  -0.0028886867251208333 + 0.0031067438275609416im
    0.004460105886554231 + 0.018990858612221658im
    0.010591788367373135 + 0.009300175422913157im
   -0.012011015421130618 - 0.002852963969321844im
    0.016876015189894428 - 0.02389155696259156im
   -0.024514741923017523 - 0.006739618437719694im
   -0.036403257264978325 - 0.03646370638147558im
      0.0731102610325355 - 0.005393853640334744im
    0.004708363585431366 + 0.020657188123701157im
    0.008171614845003946 - 0.008356419240489441im
      0.0157516555794046 - 0.0021036808439787624im
     0.03698213750643437 + 0.06231198267734649im
   -0.005982390967761843 + 0.0010704517424751858im
   -0.014720193727871927 - 0.0172103856923512im
    -0.04810597924502931 - 0.03139130187544094im
     0.01887492707760329 - 0.020943468709959296im
    -0.02975828412054612 + 0.03547648624669807im
    0.017364343750549176 + 0.010054953913327516im
    0.010650119392699083 + 0.011080768814805905im
   -0.007711472502724272 + 0.004089706141335945im
   -0.007608476257281338 - 0.005875362634623239im
 -0.00047261165329271854 - 0.0034620253525383853im
     -0.0142684072336739 + 0.01732465554878619im
     0.02258140738949965 + 0.020084772700955652im
   -0.005859431299471032 - 0.007814831207368861im
   0.0075600924711073025 + 0.02547412442545554im
   -0.035493700210123415 + 0.0202168445798774im
   -0.031157037142931186 - 0.04203605187360098im
   -0.027215997021933256 + 0.006551797583235701im
   -0.009597089638711823 + 0.015991432435642303im
    0.010205193578468158 - 0.03111699295257781im
   -0.010108137091668403 + 0.026069791166640356im
    0.021326639221562443 + 0.007071231816881942im
   -0.031148048719945594 - 0.019492481881228572im
   -0.031511690358396356 - 0.016036285903427712im

First, we construct a single-atom depolarizing model on $N$ qubits. Then, we repeat the simulation with different depolarizing rates. The emulate method can take a function of the solution to save. We save two quantities: the probability amplitudes $|\langle z | \psi \rangle |^2$ and the fidelity $F = \langle \psi| \rho |\psi \rangle$.

depol(γ, N) = [sqrt(γ)*mat(put(N, i=>op)) for i in 1:N for op in [X,Y,Z]]
function sim_depol(γ)
    prob = NoisySchrodingerProblem(
        zero_state(N),
        [0.0,tend],
        h,
        depol(γ, N)
    )
    sim = emulate_noisy(prob, 20,
        sol -> [
            abs.(sol[end]).^2,
            abs(sol[end]' * ψ)^2
        ];
        ensemble_algo = EnsembleThreads()
    )
    (simulation_series_mean(sim),
        simulation_series_err(sim))
end
depol_strengths = [.002, .004, .006]
p = [sim_depol(γ) for γ in depol_strengths];

Lastly, we create a histogram of the probability amplitudes from the simulation for each level of depolarizing noise, and compare against the prediction:

colors = [:blue, :green, :purple]

fig = Figure()
ps = 0:1e-4:0.006
ax = Axis(fig[1, 1]; xlabel = L"p", ylabel = L"P(p)", title = "Probability distribution vs noise strength", yscale=log10)
xlims!(ax, 0, .006)
ylims!(ax, 3, 1f4)
stephist!(normalize!(abs2.(ψ), 1), color = :black, label = "γ = 0")
lines!(ax, ps, D .* exp.(-D .* ps), color = :black, linestyle = :dash)

for (p, c, r) in zip(p, colors, depol_strengths)
    F = exp(-r * 3N * tend)
    ps = (1-F)/D:1e-4:0.006
    stephist!(normalize(p[1][1], 1), color = c, label = "γ = $(@sprintf("%.3f", r))")
    lines!(ax, ps, D ./ F .* exp((1-F)/F) .* exp.(-D .* ps ./ F), color = c, linestyle = :dash)
    lines!(ax, [(1-F)/D, (1-F)/D], [0, D/F], color = c, linestyle = :dash)
end
axislegend(ax, position = :rt)
fig

BloqadeNoisy

We can examine three different measures of fidelity: First, we have the actual state fidelity $F = \langle \psi | \rho |\psi \rangle$ which is saved in the simulation. Next, we have the prediction from the depolarizing model $F = e^{-3N\gamma t}$. Lastly, there is another quantity called the linear cross-entropy which acts as a proxy for the fidelity with chaotic Hamiltonians. The cross entropy is defined

\[\text{XEB} = \langle D^2 p(z)q(z) - 1\rangle\]

where $p(z) = |\langle z | \psi \rangle|^2$ and $q(z) = \langle z | \rho |z \rangle$. Using the form from above $\rho = F|\psi\rangle \langle \psi| + (1-F)\chi$, we see that

\[\langle p(z) q(z) \rangle = F\langle p^2(z)\rangle + (1-F)\langle p(z) r(z) \rangle\]

Using the fact that $P_1(p) = De^{-Dp}$ and $P_2(r) = \delta(r-1/N)$, we compute

\[\langle p^2(z)\rangle = D\int_0^\infty p^2e^{-Dp}dp = \frac{2}{D^2}\]

and

\[\langle p(z) r(z) \rangle = D\int_0^\infty\int_0^\infty p\delta(r-\frac{1}{D})e^{-Dp/r}dpdr = \frac{1}{D^2}\]

Substituting these in gives $\text{XEB} = D^2(2/D^2)F + D^2(1-F)/D^2 - 1 = F$. Thus all three quantities estimate $F$.

fig = Figure()
ax = Axis(fig[1, 1]; title = "Depolarizing fidelity and cross-entropy", xlabel = L"\gamma", ylabel = "fidelity")
errorbars!(ax, depol_strengths, [p[i][1][2] for i in 1:3], [p[i][2][2] for i in 1:3])
scatter!(ax, depol_strengths, [p[i][1][2] for i in 1:3], label = L"F")
lines!(ax, depol_strengths, exp.(-3N * tend .* depol_strengths), label = L"e^{-3\gamma N T}")
lines!(ax, depol_strengths, [(2^N*sum(p[i][1][1] .* abs.(ψ).^2)-1) for i in 1:3], label = "XEB")
axislegend(ax, position = :rt)
fig

BloqadeNoisy

Memory constraints

When simulating large systems, memory can be an issue. The NoisySchrodingerProblem can also be used directly with the DifferentialEquations interface to simulate each trajectory manually if more control is required. The randomize function reinitializes the trajectory with a new sample from the specified distirbution of Hamiltonian parameters and chooses a random initial condition.

R = (862690/2.5)^(1/6)
atoms = generate_sites(SquareLattice(), 4, 3, scale = .85*R)
N = length(atoms)
tend = 3.0
Ω = 2.5*2π

h = rydberg_h(atoms; Ω = Ω, Δ = 0)

ψ = solve(SchrodingerProblem(zero_state(N), tend, h), DP8()).u;

p = zeros(2^N)
ntraj = 100
prob = NoisySchrodingerProblem(zero_state(N), [tend], h, Aquila())
for i in ProgressBar(1:ntraj)
    sample = randomize(prob)
    int = init(sample, DP8())
    solve!(int)
    p .+= abs2.(int.u)/ntraj
end

fig = Figure()
ax = Axis(fig[1, 1]; xlabel = "state", ylabel = "probability", title = "Memory-constrained simulation")
scatterlines!(ax,
    [real(ψ[end]' * mat(put(N, i=>Op.n)) * ψ[end]) for i in 1:N],
    marker = :circle, markersize = 6,
    label = "ideal"
    )
scatterlines!(ax, [expectation_value_noisy(Aquila(), p, mat(put(N, i=>Op.n))) for i in 1:N], marker = :rect, markersize = 6, label = "noisy")
ylims!(ax, 0,1)
axislegend(ax, position = :rt)
fig

BloqadeNoisy

References & Further Reading

[1] https://qutip.org/docs/latest/guide/dynamics/dynamics-monte.html

[2] https://lukin.physics.harvard.edu/files/lukin/files/physics285blecture_notes.pdf (Chapter 6)

[3] Wurtz, J. et al. (2023). Aquila: QuEra's 256-qubit neutral-atom quantum computer. arXiv preprint arXiv:2306.11727.

[4] Daniel, Aiden, et al. "Bridging quantum criticality via many-body scarring." Physical Review B 107.23 (2023): 235108.

[5] Boixo, Sergio, et al. "Characterizing quantum supremacy in near-term devices." Nature Physics 14.6 (2018): 595-600.


This page was generated using Literate.jl.